# author = "Ronald"
# date   = 24-04-2010 07:29:02 PM

from OpenGL.GL import *
from OpenGL.GLUT import *
from OpenGL.GLU import *
from numpy import *
# import sys
# import math

windowId = -1
WIDTH = 800
HEIGHT = 600

# Configuramos OpenGL
def InitGL():

    glClearColor(0.0, 0.0, 0.0, 0.0)	# Color negro, sin transparencia

    glClear(GL_COLOR_BUFFER_BIT)
    glViewport(0, 0, WIDTH, HEIGHT)
    glMatrixMode(GL_PROJECTION)
    glLoadIdentity()
    gluOrtho2D(-1, 1, -1, 1)

    glMatrixMode(GL_MODELVIEW)
    glLoadIdentity()

def display():
    glClear(GL_COLOR_BUFFER_BIT)
    glColor3f (1.0, 1.0, 1.0)
    #glLoadIdentity()                # clear the matrix
    glTranslatef(0.0, 0.0, -5.0)    # viewing transformation
    glScalef(1.0, 2.0, 1.0)         # modeling transformation
    glutWireCube(1.0)                # draw the cube
    glFlush()
    glutSwapBuffers()

def myinit():
    glShadeModel (GL_FLAT)

def myReshape(w, h):
    glMatrixMode (GL_PROJECTION)     # prepare for and then
    glLoadIdentity ()                # define the projection
    glFrustum (-1.0, 1.0, -1.0, 1.0, 1.5, 20.0) # transformation
    glMatrixMode (GL_MODELVIEW)   # back to modelview matrix
    glViewport (0, 0, w, h)       # define the viewport

def main():
    global windowId

    # Configurar OpenGL
    glutInit(())

    # Mi modo de Display. Por ahora, no importa
    glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE | GLUT_ALPHA )

    # Tamanio de la ventana.
    glutInitWindowSize(WIDTH, HEIGHT)

    # Donde queremos que se posicione la ventana al iniciar.
    glutInitWindowPosition(0, 0)
    windowId = glutCreateWindow("Proyecto Robot - Marcel_Ronald")

    # Defino la funci'on que se encargar'a de dibujar
    glutDisplayFunc(display)

    # La funci'on cuando el programa este Idle.
    # En un videoJuego, 'este ser'ia el lugar donde actualizo posiciones, calculo puntajes, etc.
    # glutIdleFunc(DrawGLScene)

    # La funci'on a llamar cuando cambia el tamanio de la ventana.
    glutReshapeFunc (myReshape)

    # Configuramos OpenGL para trabajar al tamanio deseado.
    myinit()
    
    # Loop infinito
    glutMainLoop()

main()